/// Coder: Jose Ricardo Mello Viana - 2008
/// Bugs? e-mail me: zezim.ricardo@gmail.com

#ifndef SKELETONLOADER_H_
#define SKELETONLOADER_H_

#include "skeleton.h"
#include "typedefs.h"
#include "utils.h"

/// This class implements a loader of skeletons
/// and motion data files
class SkeletonLoader {
   
public:
   /// Contructor Default
   SkeletonLoader();

   /// Destructor Default
   virtual ~SkeletonLoader();   
   
   /// Loader of a file
   /// @param filename name of a file
   /// @return readed skeleton
   Skeleton* load(string filename);

   /// Loader of a file
   /// @param filename name of a file
   /// @param id type of file
   /// @return readed skeleton
   Skeleton* load(string filename, FileType id);
   
   /// Loader of a ASF file
   /// @param filename name of a file
   /// @return readed skeleton
   Skeleton* loadASF(string filename);
   
   /// Loader of a BVH file
   /// @param filename name of a file
   /// @return readed skeleton
   Skeleton* loadBVH(string filename);
};

#endif /*SKELETONLOADER_H_*/
